package com.example.service.impl;

import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.common.ResultCode;
import com.example.dao.*;
import com.example.entity.Chuangxinhuodong;
import com.example.exception.CustomException;
import com.example.service.ChuangxinhuodongService;
import com.example.vo.ChuangxinhuodongVo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.Map;

@Service("chuangxinhuodongService")
public class ChuangxinhuodongServiceImpl extends ServiceImpl<ChuangxinhuodongDao, Chuangxinhuodong> implements ChuangxinhuodongService {

    @Resource
    private ChuangxinhuodongDao chuangxinhuodongDao;

    public Chuangxinhuodong add(Chuangxinhuodong chuangxinhuodong) {
		
	   //youquchong1
        chuangxinhuodong.setAddtime(new Date());
        chuangxinhuodongDao.insert(chuangxinhuodong);
        return chuangxinhuodong;
    }
	
	
	
    public void delete(Long id) {
        chuangxinhuodongDao.deleteById(id);
    }
	

    public void update(Chuangxinhuodong chuangxinhuodong) {
        //youquchong2
        chuangxinhuodongDao.updateById(chuangxinhuodong);
    }
	
	@Override
    public List<Map<String, Object>> daochuexcel() {
        return chuangxinhuodongDao.daochuexcel();
    }

    @Override
    public Chuangxinhuodong findById(Integer id) {
        return chuangxinhuodongDao.selectById(id);
    }

    public ChuangxinhuodongVo findPage(ChuangxinhuodongVo chuangxinhuodongVo) {
        LambdaQueryWrapper<Chuangxinhuodong> wrapper = Wrappers.lambdaQuery();
		wrapper.like(ObjectUtils.isNotEmpty(chuangxinhuodongVo.getHuodongbianhao()), Chuangxinhuodong::getHuodongbianhao,chuangxinhuodongVo.getHuodongbianhao());        wrapper.like(ObjectUtils.isNotEmpty(chuangxinhuodongVo.getHuodongmingcheng()), Chuangxinhuodong::getHuodongmingcheng,chuangxinhuodongVo.getHuodongmingcheng());        wrapper.like(ObjectUtils.isNotEmpty(chuangxinhuodongVo.getPeixunhuodong()), Chuangxinhuodong::getPeixunhuodong,chuangxinhuodongVo.getPeixunhuodong());        wrapper.like(ObjectUtils.isNotEmpty(chuangxinhuodongVo.getBenchuangxiangmu()), Chuangxinhuodong::getBenchuangxiangmu,chuangxinhuodongVo.getBenchuangxiangmu());        wrapper.like(ObjectUtils.isNotEmpty(chuangxinhuodongVo.getHuodongneirong()), Chuangxinhuodong::getHuodongneirong,chuangxinhuodongVo.getHuodongneirong());        wrapper.like(ObjectUtils.isNotEmpty(chuangxinhuodongVo.getHuodongjiezhiriqi()), Chuangxinhuodong::getHuodongjiezhiriqi,chuangxinhuodongVo.getHuodongjiezhiriqi());        wrapper.like(ObjectUtils.isNotEmpty(chuangxinhuodongVo.getZhaopian()), Chuangxinhuodong::getZhaopian,chuangxinhuodongVo.getZhaopian());        wrapper.like(ObjectUtils.isNotEmpty(chuangxinhuodongVo.getBeizhu()), Chuangxinhuodong::getBeizhu,chuangxinhuodongVo.getBeizhu());        
        Page<Chuangxinhuodong> page = new Page<>(chuangxinhuodongVo.getCurrent(),chuangxinhuodongVo.getCurrentNum());
        chuangxinhuodongDao.selectPage(page,wrapper);
        List<Chuangxinhuodong> chuangxinhuodongs = page.getRecords();
        chuangxinhuodongVo.setList(chuangxinhuodongs);
        chuangxinhuodongVo.setPages(page.getPages());
        chuangxinhuodongVo.setTotal(page.getTotal());
        chuangxinhuodongVo.setCurrent(page.getCurrent());
        chuangxinhuodongVo.setCurrentNum(page.getSize());
        return chuangxinhuodongVo;
    }

    @Override
    public void deleteList(List<Chuangxinhuodong> list) {
        List<Integer> ids =  list.stream().map(Chuangxinhuodong::getId).collect(Collectors.toList());
        chuangxinhuodongDao.deleteBatchIds(ids);
    }
	
	
	
	
	
	//youxxianxci
}
